package com.buwstudio.domain;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import lombok.AccessLevel;
import lombok.Getter;
import lombok.NoArgsConstructor;

@Getter
@NoArgsConstructor(access=AccessLevel.PRIVATE)
public class DomainEventOnMQ {

	private String eventId;
	
	private String eventPayload;
	
	/**
	 * 描述:<br>
	 * 在mq中传递的是event的id 和 包含领域模型的业务标识id的payload（比如身份证号，流水号，机构代码等有意义的唯一编码），<br>
	 * uuid领域模型中的id就可以作为业务标识id，<br>
	 * int领域模型中的id非业务id，而它override的getBid()中返回的才是bid
	 */
	public static DomainEventOnMQ create(String eventId, String eventPayload){
		DomainEventOnMQ domainEventOnMQ = new DomainEventOnMQ();
		domainEventOnMQ.eventId = eventId;
		domainEventOnMQ.eventPayload = eventPayload;
		return domainEventOnMQ;
	}
	
	public String toJsonString(){
	    Gson gson = new GsonBuilder().create();
	    return gson.toJson(this);
	}
	
	
	
	
}
